﻿#pragma once

/**
*   每有一个client连接，就要创建一个该类对象，用以指代此连接
*   当连接结束后，要及时销毁该类对象，否则会内存溢出
*/
#include <QTCPSOCKET>
#include <QDEBUG>
#include "protocol.h"
#include "opedb.h"
//文件夹操作
#include <QDIR>
#include <QFILEINFO>
#include <QFILE>
//#include <QTimer>

class MyTcpSocket :
	public QTcpSocket
{
	Q_OBJECT
public:
	MyTcpSocket();
	QString getName();
	QString getPwd();

signals:
	void offline(MyTcpSocket* pTcpSocket);

public slots:
	void recvMsg();
	void clientOffline();

private:
	QString m_strName;	//标明该连接的用户名称
	QString m_strPwd;
	QFile m_file;
	qint64 m_iTotal;	//记录文件总大小
	qint64 m_iReceived;	//记录已接收的文件大小
	bool m_bUpload;		//记录此时是否是上传文件状态
	//QTimer* m_pTimer;	//实现延迟发送等功能

	void sendFileToClient();
};

